package cn.cyh.queue_service.model.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 队列视图对象
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QueueVO {
    
    /**
     * 队列ID
     */
    private Long id;
    
    /**
     * 票号(前缀字母+数字)
     */
    private String ticketNumber;
    
    /**
     * 业务类型ID
     */
    private Long serviceTypeId;
    
    /**
     * 业务类型名称（非持久化字段）
     */
    private String serviceTypeName;
    
    /**
     * 状态(WAITING-等待中, CALLING-叫号中, SERVING-办理中, COMPLETED-已完成, NO_SHOW-未到场)
     */
    private String status;
    
    /**
     * 分配的窗口ID
     */
    private Long windowId;
    
    /**
     * 窗口号（非持久化字段）
     */
    private Integer windowNumber;
    
    /**
     * 窗口名称（非持久化字段）
     */
    private String windowName;
    
    /**
     * 是否已验证(0-未验证, 1-已验证)
     */
    private Integer isVerified;
    
    /**
     * 等待时间(分钟)
     */
    private Integer waitTime;
    
    /**
     * 取号时间
     */
    private LocalDateTime createTime;
    
    /**
     * 叫号时间
     */
    private LocalDateTime callTime;
    
    /**
     * 验证时间
     */
    private LocalDateTime verifyTime;
    
    /**
     * 开始服务时间
     */
    private LocalDateTime startTime;
    
    /**
     * 结束服务时间
     */
    private LocalDateTime endTime;
}